#pragma once
//#include "GLAddon\TrackBall.h"
//#include "2DSpline\MultiPolygon.h"
//#include "GLAddon\Utility.h"
//#include "ANN.h"

#include "..\structure\Enriched_polyhedron.h"
#include "..\Partition\OctreePartitioner.h"

template <class Polyhedron, class Kernel>
class CCubeGraphBuilder
{
public:
	typedef typename Kernel::FT							FT;
	typedef typename Kernel::Point_2					Point_2;
	typedef typename Kernel::Vector_2					Vector_2;
	typedef typename Kernel::Point_3					Point_3;
	typedef typename Polyhedron::Vertex_const_handle	Vertex_const_handle;
	typedef typename Polyhedron::Vertex_handle			Vertex_handle;
	typedef typename Polyhedron::Vertex_const_iterator	Vertex_const_iterator;
	typedef typename Polyhedron::Halfedge_iterator      Halfedge_iterator;
/**************glossary
C:	cube
CF: cube face
CFP:cube face pattern 
*****************/

public:
	Polyhedron		*m_pMesh;

	ANNpointArray Ann_pointArray_MV;
	ANNkd_tree* pAnn_SearchTree;

public:
	unsigned m_DrawSampleRt;
	CCubeGraphBuilder()
	{
		m_pMesh= NULL;
		pAnn_SearchTree = NULL;		
	}
	~CCubeGraphBuilder();

};

		

